package persistencia.operaciones;

import java.util.ArrayList;
import java.util.List;

import persistencia.DBManager;
import persistencia.DataGenerator;
import recital.Estadio;
import recital.Recital;
import artistas.ArtistaMusical;
import espectaculos.Festival;
import espectaculos.Gira;

public class PoblarBase implements Runnable{
	private List<String> nombresMusicos;
	private List<String> nombresEstadios;
	private List<String> nombresFestivales;
	private List<String> nombresGiras;
	
	public PoblarBase(){
		this.nombresMusicos = new ArrayList<String>();
		this.nombresMusicos.add("Hache");
		this.nombresMusicos.add("Fede");
		this.nombresMusicos.add("Pablo");
		this.nombresEstadios = new ArrayList<String>();
		this.nombresEstadios.add("Estadio 1");
		this.nombresEstadios.add("Estadio 2");
		this.nombresEstadios.add("Estadio 3");
		this.nombresEstadios.add("Estadio 4");
		this.nombresFestivales = new ArrayList<String>();
		this.nombresFestivales.add("Ozzfest");
		this.nombresFestivales.add("Wacken Open Air");
		this.nombresFestivales.add("Rock am Ring");
		this.nombresFestivales.add("Glastonbury");
		this.nombresFestivales.add("Big Day Out");
		this.nombresGiras = new ArrayList<String>();
		this.nombresGiras.add("Gira 1");
		this.nombresGiras.add("Gira 2");
		this.nombresGiras.add("Gira 3");
		this.nombresGiras.add("Gira 4");
		this.nombresGiras.add("Gira 5");
	}
public void run() {
		DBManager db = DBManager.getInstance();
		DataGenerator dg = DataGenerator.getInstance();
		List<Estadio> estadios = dg.generarEstadios(this.nombresEstadios);
		List<Recital> recitales1 = dg.generarRecitales(7, estadios); 
		List<Recital> recitales2 = dg.generarRecitales(7, estadios);
		for (ArtistaMusical artista : dg.getArtistas()) {
			db.set(artista);			
		}
		for (Recital recital : recitales1) {
			recital.setEntradasVendidas(dg.generateRandomValue(recital.getCantEntradasMaximas()));
		}
		
		for (Recital recital : recitales2) {
			recital.setEntradasVendidas(dg.generateRandomValue(recital.getCantEntradasMaximas()));
		}
		List<Festival> festivales = dg.generarFestivales(nombresFestivales, recitales1);
		List<Gira> giras = dg.generarGiras(nombresGiras, recitales2);
		for (Festival festival : festivales) {
			db.set(festival);
		}
		for (Gira gira : giras) {
			db.set(gira);
		}
	}

}
